$(function onLoad() {
    function isExisted() {
        var openid = util.getQueryString('openid');
        var newuser = util.getQueryString('newuser');

        if (newuser) {
            util.go('#tenant-index');
            $('#openId').val(openid);
            initCityPicker();
            initDialog();
        } else {
            getUserInfo(openid);
        }

        util.setFooter('.weui-footer');
    }

    function getUserInfo(openid) {
        $.ajax({
            url: 'http://139.196.38.189:8026/tenant/byopenid/' + openid,
            type: 'GET',
            success: function onSuccess(res) {
                if (res.status === 0) {
                    if (!res.data) {
                        util.go('#tenant-index');
                        $('#openId').val(openid);
                        initCityPicker();
                        initDialog();
                    } else {
                        util.go('#tenant-preview');
                        setResultPage(res.data);
                    }

                    util.setFooter('.weui-footer');
                }

            }
        });
    }

    function initCityPicker() {
        $('#city-picker').cityPicker({
            title: "请选择所在城市",
            onChange: function(picker, ids, values) {
                $('#province').val(values[0]);
                $('#city').val(values[1]);
                $('#area').val(values[2]);
                $('#provinceId').val(ids[0]);
                $('#cityId').val(ids[1]);
                $('#areaId').val(ids[2]);
            }
        });
    }

    function validate(data) {
        var i;

        for (i in data) {
            if (util.isEmpty(data[i])) {
                if (i === 'name') {
                    util.toggleErrMsg('.js_tooltips', '请输入姓名');
                    return false;
                } else if (i === 'phone') {
                    util.toggleErrMsg('.js_tooltips', '请输入联系电话');
                    return false;
                } else if (i === 'rental') {
                    util.toggleErrMsg('.js_tooltips', '请输入每月房租');
                    return false;
                } else if (i === 'rentalType') {
                    util.toggleErrMsg('.js_tooltips', '请选择是否合租');
                    return false;
                } else if (i === 'province' || i === 'city' || i === 'area') {
                    util.toggleErrMsg('.js_tooltips', '请选择所在城市');
                    return false;
                } else if (i === 'address') {
                    util.toggleErrMsg('.js_tooltips', '请输入详细地址');
                    return false;
                } else if (i === 'landlordName') {
                    util.toggleErrMsg('.js_tooltips', '请输入房东称呼');
                    return false;
                } else if (i === 'landlordPhone') {
                    util.toggleErrMsg('.js_tooltips', '请输入房东电话');
                    return false;
                }
            } else if (/phone/gi.test(i) &&
                !util.isPhone(data[i])) {
                util.toggleErrMsg('.js_tooltips', '请输入正确的联系电话');
                return false;
            } else if (i === 'rental' && !util.isInRange(data[i])) {
                util.toggleErrMsg('.js_tooltips', '每月房租须在1 - 1000000之间');
                return false;
            }

        }

        return true;

    }

    function initDialog() {
        $('#toggleDialog').click(function onClick(evt) {
            var data = $('form').serializeObject();

            evt.stopPropagation();

            if (validate(data)) {
                $('#dialog')
                    .show()
                    .on('click', '.js-dialog-btn', function onClick(evt) {
                        var $this = $(this);
                        var id = $this.prop('id');

                        evt.stopPropagation();

                        if (id === 'no') {
                            $('input:radio[name=agreed]').attr('disabled', true);
                        } else if (id === 'yes') {
                            if (!$('input[type=radio][name=agreed]:checked').val()) {
                                util.toggleErrMsg('.js_tooltips', '请确认是否同意办理租金分期');
                                return false;
                            }
                        }

                        $('#dialog').hide();
                        submit();
                    });
            }
        });
    }

    function submit() {
        $.ajax({
            url: 'http://139.196.38.189:8026/post/tenant',
            type: 'POST',
            data: $('form').serialize(),
            success: function onSuccess(res) {
                if (res.status === 0) {
                    var data = $('form').serializeObject();
                    util.go('#tenant-preview');
                    setResultPage(data);
                    util.setFooter('.weui-footer');
                }
            }
        });
    }

    function setResultPage(data) {
        var region = ['province', 'city', 'area'];
        var len = region.length;
        var i;
        var j;

        for (i in data) {
            if (i === 'name') {
                $('#name').text(data[i]);
            } else if (i === 'phone') {
                $('#phone').text(data[i]);
            } else if (i === 'rental') {
                $('#rental').text(data[i]);
            } else if (i === 'rentalType') {
                $('#rentalType').text(data[i]);
            } else if (i === 'landlordName') {
                $('#landlordName').text(data[i]);
            } else if (i === 'landlordPhone') {
                $('#landlordPhone').text(data[i]);
            } else if (i === 'agreed' && data[i] === '同意租金分期') {
                $('#agreementArea').hide();
            }
        }

        for (j = 0; j < len; j++) {
            region[j] = data[region[j]];
        }

        $('#region').text(region.join(' '));

        changeAgreement();
    }

    function changeAgreement() {
        $('.js-agree').on('click', function onClick(evt) {
            var $this = $(this);
            var id = $(this).prop('id');
            if (id === 'agree') {
                $.ajax({
                    url: 'http://139.196.38.189:8026/post/tenantAgreedInstalments',
                    type: 'POST',
                    data: {
                        phone: $('#phone').text()
                    },
                    success: function onSuccess(res) {
                        if (res.status === 0) {
                            toggleToast();
                        }
                    }
                });
            } else if (id === 'disagree') {
                $('#agreementArea').slideUp();
            }
        });
    }

    function toggleToast() {
        var $toast = $('#toast');
        $toast.show();
        setTimeout(function onTimeout() {
            $toast.hide();
            $('#agreementArea').slideUp();
        }, 2000);
    }

    isExisted();
});